package main

import "fmt"

func main() {
	//go语言中得map的key和value类型申明就要指明
	m1 := map[string]string{
		"m1": "v1",
	}
	fmt.Println(m1)

	//2.make函数 make函数可以创建slice 可以创建map
	m2 := make(map[string]string)
	m2["m2"] = "v2"
	fmt.Println(m2)
	//3.定义一个空的map
	m3 := map[string]string{}
	fmt.Println(m3)
	//map中的key 不是所有的类型都支持 该类型需要支持==或者是！=操作

	//切片不支持
	//a := []int{1, 2, 3}
	//b := []int{1, 2, 3}
	//if a == b {
	//}
	a := [3]int{1, 2, 3}
	b := [3]int{1, 2, 3}
	if a == b {
	}
	m4 := map[[3]int]string{}
	fmt.Println(m4)

	//map的基本操作
	//1.增加,修改
	m5 := map[string]string{
		"a": "va",
		"b": "vb",
	}
	m5["c"] = "vc"
	m5["b"] = "vb1"
	fmt.Println(m5)

	//查询
	value, ok := m5["d"]
	if ok {
		fmt.Println("娶到了")
		fmt.Println(value)
	}
	//删除
	delete(m5, "a")
	delete(m5, "e") //如果值不存在,也不会抛出异常
	//遍历
	for k, v := range m5 {
		fmt.Println(k, v)
	}
	//go语言中也有list
}
